home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / amok_lha / amok15.lha / Calc / Calc.mod < prev    next >
Text File  |  1993-08-15  |  1KB  |  46 lines

  1. MODULE Calc;
  2.  
  3. FROM Arts                  IMPORT dosCmdBuf, wbStarted;
  4. FROM FormelAuswertung      IMPORT Formelstring, DefFormel, LongBerechnung;
  5. FROM Terminal              IMPORT WriteString, WriteLn;
  6. FROM MyLongRealConversions IMPORT RealToStr;
  7. FROM Strings               IMPORT Length;
  8.  
  9. VAR
  10.   formel: POINTER TO Formelstring;
  11.   x: LONGREAL;
  12.   i,j: CARDINAL;
  13.   s: Formelstring;
  14.  
  15. BEGIN
  16.   IF (dosCmdBuf#NIL) AND NOT(wbStarted) THEN
  17.     formel := dosCmdBuf;
  18.     i := 0; j := 0;
  19.     WHILE (formel^[i]#0C) AND (formel^[i]#12C) AND (i<255) DO
  20.       IF formel^[i]#" " THEN
  21.         s[j] := formel^[i];
  22.         INC(j);
  23.       END;
  24.       INC(i);
  25.     END;
  26.     s[j] := 0C;
  27.     CASE DefFormel(1,s,TRUE,TRUE) OF
  28.     31: WriteString("Keine Formel!") |
  29.     32: WriteString("Variablen in Formel nicht erlaubt!") |
  30.     33: WriteString("Syntaxfehler!") |
  31.     34: WriteString("Formel enthält ungültiges Zeichen!") |
  32.     35: WriteString("Zahl zu groß!") |
  33.     ELSE
  34.       LongBerechnung(1,x,i);
  35.       IF i=0 THEN
  36.         RealToStr(x,s,10,10);
  37.         WriteString(s);
  38.       ELSE
  39.         WriteString("Fehler!");
  40.       END;
  41.     END;
  42.   END;
  43.   WriteLn;
  44. END Calc.
  45.  
  46.